Selecting content items for display in a content stream

ABSTRACT

A method for selecting content items, comprising: receiving, using one or more processing devices, a request for content items for display in a content stream; retrieving, using the one or more processing devices, in response to the request, a condition for targeting a content item for display in the content stream; detecting, using the one or more processing devices, that the condition is satisfied; adjusting, using the one or more processing devices, the bid price in accordance with the condition; executing, using the one or more processing devices, an auction, based on the bid price adjusted and other bid prices for other content items in the auction; and selecting, using the one or more processing devices, based on the auction, the content items for display in the content stream.

BACKGROUND

A web page may display content items. An advertisement is an example ofa content item. Selection of the content items may be based on numerousfactors, including, e.g., age, gender, profession, and income level of aviewer of the web page.

In an example, the web page includes content. In this example, thecontent may also be used in selecting the content items, e.g., byselecting content items that are relevant to the content in the webpage.

SUMMARY

In one aspect of the present disclosure, a method for selecting contentitems, including: receiving, using one or more processing devices, arequest for content items for display in a content stream; retrieving,using the one or more processing devices, in response to the request, acondition for targeting a content item for display in the contentstream; wherein the condition is associated with information specifyingan adjustment to a bid price for display of the content item uponsatisfaction of the condition, relative to the bid price for display ofthe content item in an absence of the condition; detecting, using theone or more processing devices, that the condition is satisfied;adjusting, using the one or more processing devices, the bid price inaccordance with the condition; executing, using the one or moreprocessing devices, an auction, based on the bid price adjusted andother bid prices for other content items in the auction; and selecting,using the one or more processing devices, based on the auction, thecontent items for display in the content stream.

Implementations of the disclosure can include one or more of thefollowing features. In some implementations, the method also includesgenerating measures of relevance for the content items in the auction;wherein a measure of relevance is based on a satisfaction of thecondition by one or more of attributes of a user viewing the contentstream and attributes of the content stream; wherein executing theauction includes: executing the auction based on the measures ofrelevance and the bid prices. In other implementations, the contentstream is designated for display of content related to a media programthat is accessed by a viewer of the content stream.

In still other implementations, the condition includes the content itembeing displayed in the content stream to counteract an effect ofanother, different content item displayed during the media program. Insome implementations, the content item includes a first content item,and wherein the condition includes: the first content item beingdisplayed at a substantially same time in the content stream as a secondcontent item is displayed during the media program.

In some implementations, the condition includes information indicativeof a type of content to be targeted, and the method further includes:receiving, from a device for display of the media program, informationindicative of a station on which the media program is accessed;identifying, based on the station, an identity of the media programaccessed by the viewer; and determining, based on the identity of themedia program, a correspondence between the type of content to betargeted and a type of content associated with the media programaccessed by the viewer.

In yet other implementations, the condition includes one or more of: oneor more attributes of a viewer of the content stream; one or moreattributes of a group that is generating content for the content stream;content that is posted in the content stream; and content of a mediaprogram that is accessed by the viewer of the content stream. In stillother implementations, at least one of the content items selectedincludes the content item associated with the condition, and wherein themethod further includes: transmitting, to a device for rendering avisual representation of the content stream, the content items fordisplay in the content stream.

In still another aspect of the disclosure, one or more machine-readablemedia are configured to store instructions that are executable by one ormore processing devices to perform operations including receiving arequest for content items for display in a content stream; retrieving inresponse to the request, a condition for targeting a content item fordisplay in the content stream; wherein the condition is associated withinformation specifying an adjustment to a bid price for display of thecontent item upon satisfaction of the condition, relative to the bidprice for display of the content item in an absence of the condition;detecting that the condition is satisfied; adjusting the bid price inaccordance with the condition; executing an auction, based on the bidprice adjusted and other bid prices for other content items in theauction; and selecting, based on the auction, the content items fordisplay in the content stream. Implementations of this aspect of thepresent disclosure can include one or more of the foregoing features.

In still another aspect of the disclosure, an electronic system includesone or more processing devices; and one or more machine-readable mediaconfigured to store instructions that are executable by the one or moreprocessing devices to perform operations including: receiving a requestfor content items for display in a content stream; retrieving inresponse to the request, a condition for targeting a content item fordisplay in the content stream; wherein the condition is associated withinformation specifying an adjustment to a bid price for display of thecontent item upon satisfaction of the condition, relative to the bidprice for display of the content item in an absence of the condition;detecting that the condition is satisfied; adjusting the bid price inaccordance with the condition; executing an auction, based on the bidprice adjusted and other bid prices for other content items in theauction; and selecting, based on the auction, the content items fordisplay in the content stream. Implementations of this aspect of thepresent disclosure can include one or more of the foregoing features.

All or part of the foregoing can be implemented as a computer programproduct including instructions that are stored on one or morenon-transitory machine-readable storage media, and that are executableon one or more processing devices. All or part of the foregoing can beimplemented as an apparatus, method, or electronic system that caninclude one or more processing devices and memory to store executableinstructions to implement the stated operations.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram of an example of a network environment for selectingcontent items for a content stream.

FIG. 2 is a block diagram showing examples of components of a networkenvironment for selecting content items for a content stream.

FIG. 3 is a flowchart showing an example process for selecting contentitems for a content stream.

FIG. 4 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described herein.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION Definitions

The term “content stream” as used herein encompasses its plain andordinary meaning, including, but not limited to, electronic (e.g.,Web-based) content displayed in a portion of a graphical user interfacedesignated for display of the electronic content, including, e.g.,posts, links, images, and so forth.

The term “now playing content stream” as used herein encompasses itsplain and ordinary meaning, including, but not limited to, a contentstream that is designated for display of information related to a mediaprogram.

The term “social networking service” as used herein encompasses itsplain and ordinary meaning, including, but not limited to, a platformthat promotes building of social connections, e.g., among people withshared interests and/or activities.

The term “social connection” as used herein encompasses its plain andordinary meaning, including, but not limited to, a relationship betweennodes in a graph representing users of the social networking service.

The term “media program” as used herein encompasses its plain andordinary meaning, including, but not limited to, an electronicpresentation for communication of information. Types of media programsinclude music programs, television programs, Internet programs, radioprograms, and so forth.

The term “media program device” as used herein encompasses its plain andordinary meaning, including, but not limited to, a device configured toaccess a media program.

The term “content provider device” as used herein encompasses its plainand ordinary meaning, including, but not limited to, a device used by aprovider of content items (e.g., a device used by an advertiser).

The term “slot” as used herein encompasses its plain and ordinarymeaning, including, but not limited to, a portion of a graphical userinterface in which content items can be presented.

The term “auction” as used herein encompasses its plain and ordinarymeaning, including, but not limited to, a technique for allocatingcontent items to slots.

The term “bid price” as used herein encompasses its plain and ordinarymeaning, including, but not limited to, an amount that a contentprovider is willing to pay for presentation of a content item in a slot.

The term “targeting condition” as used herein encompasses its plain andordinary meaning, including, but not limited to, a condition that isused in targeting a content item to a user.

The term “selection score” as used herein encompasses its plain andordinary meaning, including, but not limited to, a value based, in part,on a bid price and a measure of relevance of a content item to contentsof a resource.

The term “resource” as used herein encompasses its plain and ordinarymeaning, including, but not limited to, item(s) of data that can beprovided over a network. Resources include content streams, HTML pages,word processing documents, portable document format (PDF) documents,images, video, applications, feed sources, and so forth.

The term “targeting keyword” as used herein encompasses its plain andordinary meaning, including, but not limited to, a word that a contentprovider has specified as relevant to a content item.

The term “browsing history” as used herein encompasses its plain andordinary meaning, including, but not limited to, a record of resourcesaccessed by a user.

The term “viewing history” as used herein encompasses its plain andordinary meaning, including, but not limited to, information indicativeof media programs that have been viewed by a user within a pre-definedperiod of time.

The term “one-two punch content item” as used herein encompasses itsplain and ordinary meaning, including, but not limited to, one or morecontent items with coordinated display on different devices, e.g.,content items displayed at a substantially same time on the differentdevices. The coordinated display of the content items promotes userattention to the content items.

The term “meta content item” as used herein encompasses its plain andordinary meaning, including, but not limited to, a content item aboutanother content item.

The term “counter punch content item” as used herein encompasses itsplain and ordinary meaning, including, but not limited to, a contentitem that counteracts an effect of another, different content item. Forexample, a “counter punch content item” may be an advertisement that isdisplayed to counter or react to a competitor's advertisement.

The term “correspondence” as used herein encompasses its plain andordinary meaning, including, but not limited to, a match, a similarity,and/or a relationship among items of data.

The term “estimated click-through likelihood” (eCTL) as used hereinencompasses its plain and ordinary meaning, including, but not limitedto, a probability that a content item is selected by a user in responseto a particular presentation of the content item.

The term “threshold value” as used herein encompasses its plain andordinary meaning, including, but not limited to, a pre-defined value.

The term “processing device” as used herein encompasses its plain andordinary meaning, including, but not limited to, one or moremicroprocessors, microcontrollers and/or programmable ornon-programmable logic that is capable of receiving and storing data,and of communicating over a network.

The term “computing device” as used herein encompasses its plain andordinary meaning, including, but not limited to, a programmable machinethat is capable of receiving input data, processing the data, andproviding an output.

Overview

Described herein is a system that selects content items for display in acontent stream of a social networking service, including, e.g., a nowplaying content stream. In some embodiments, a user may have access toor be watching multiple content streams (e.g., a television stream and anow playing stream on a social networking website). Various embodimentsherein provide for displaying the same content item (e.g., anadvertisement) to the user simultaneously (termed, e.g., a “one-twopunch”). In this example, display of the content items is coordinatedamong the devices.

In some embodiments, a user may be viewing a content stream (e.g., avideo on a website), and may have a content item displayed to the userduring that viewing. The content item may be, for example, anadvertisement for a particular advertiser. Another advertiser (e.g., acompetitor) may want to provide a “counter punch” to that firstadvertisement and may bid higher for the option to counter the firstadvertisement. For example, and referencing FIG. 1, if a politicalcandidate advertised using content item 130 in content stream 116, thenan opposing candidate may want to “counter punch” by advertising usingcontent item 122 a in the content stream 116. Therefore, the opposingcandidate may set a condition in the auction process to increase the bidfor its advertisement if the opponent has just advertised.

Example Network Environments

FIG. 1 is a diagram of an example of network environment 100 forselecting content items for a content stream. Network environment 100includes network 102, client device 103, media program device 104,content provider device 105, server 110, data repository 112, and user123. In the example of FIG. 1, media program device 104 accesses mediaprogram 121. User 123 may use client device 103 and media program device104. In the example of FIG. 1, user 123 views media program 121 on mediaprogram device 104.

Client device 103 and content provider device 105 can communicate withserver 110 over network 102. Network environment 100 may include manythousands of data repositories, client devices, content providerdevices, and servers, which are not shown. Server 110 may includevarious data engines, including, e.g., data engine 111. Although dataengine 111 is shown as a single component in FIG. 1, data engine 111 canexist in one or more components, which can be distributed and coupled bynetwork 102.

In an example, client device 103 includes application 134 for accessinga social networking service (not shown). In this example, the socialnetworking service may be hosted by server 110. Application 134generates data for displaying graphical user interface 109 on clientdevice 103. Graphical user interface 109 can display various aspects ofthe social networking service, including, e.g., a listing of socialconnections of user 123, a listing of recent activity of user 123 in thesocial networking service, various content streams that are generated bythe social networking service, and so forth.

In this example, the social networking service may be configured togenerate various, different types of content streams. For example, thesocial networking service may be configured to generate a content streamfor display of recent activity of users with social connections to user123. In another example, the social networking service is configured togenerate a now playing content stream, including, e.g., content stream116. In this example, content stream 116 includes a content stream thatis designated for display of content related to media program 121.

In the example of FIG. 1, user 123 accesses media program 121 on mediaprogram device 104. In this example, user 123 instructs application 134to display content stream 116 for media program 121. In this example,content stream 116 is populated with content related to media program121. For example, content stream 116 may be populated with various typesof content, including, e.g., posts, links, images, and so forth. In thefollowing examples, content stream 116 is populated with posts 106, 107,108. In other examples, content stream 116 is populated with various,different types of content, including, e.g., posts, links, and images(or any combination thereof).

In this example, posts 106, 107, 108 are stored in data repository 112.Posts 106, 107, 108 are retrieved by data engine 111, e.g., in responseto a request (not shown) from application 134 for content related tomedia program 121 for display in content stream 116. In an example, therequest is generated in response to user 123 selecting a control (notshown) in graphical user interface 109 for display of content stream116. In another example, the request is automatically generated whenapplication 134 starts up.

In an example, content stream 116 includes slots 124 a-124 c. In theexample of FIG. 1, a content provider (e.g., an advertiser) uses contentprovider device 105 to upload content items 122 a-122 c to server 110.Content items 122 a-122 c are stored in data repository 112.

In an example, server 110 selects content items 122 a-122 c for displayin slots 124 a-124 c, e.g., based on results of an auction. In anauction, the content provider specifies bid prices (not shown) forplacement of content items 122 a-122 c in slots 124 a-124 c.

In addition to specifying bid prices for content items 122 a-122 c,content providers also specify targeting conditions 132 a-132 c to beused in selecting content items 122 a-122 c, respectively, for displayin slots 124 a-124 c. In an example, server 110 provides a contentprovider with data for a graphical user interface (not shown) throughwhich the content provider may specify targeting conditions 132 a-132 cfor content items 122 a-122 c and may also specify bid prices forcontent items 122 a-122 c. Based on the bid prices and targetingconditions 132 a-132 c for content items 122 a-122 c, data engine 111executes an auction by generating selections scores, as described infurther detail below.

As described above, a content provider uses content provider device 105to upload to server 110 targeting conditions 132 a-132 c for contentitems 122 a-122 c, respectively. There are various types of targetingconditions 132 a-132 c, including, e.g., targeting keywords. Asdescribed in further detail below, data engine 111 may use targetingkeywords in generating measures of relevance for content items 122 a-122c.

Other types of targeting conditions 132 a-132 c may be based onattributes of viewers (e.g., user 123) of content stream 116, attributesof groups that post information in content stream 116, contents ofcontent stream 116, contents of media program 121, and so forth, asdescribed in further detail below.

In an example, targeting conditions 132 a-132 c may include informationspecifying that content items 122 a-122 c are targeted to users havingparticular attributes (e.g., attributes that are defined by a contentprovider). For example, attributes of user 123 may include interests ofuser 123, e.g., as specified by a profile for user 123 in the socialnetworking service. As described in further detail below, user 123 mayopt-in or may opt-out of having information from a profile of user 123(and/or other personal information) used in an auction for selectingcontent items 122 a-122 c.

Targeting conditions 132 a-132 c may also include information specifyingthat content items 122 a-122 c are targeted to users associated withparticular demographic information. In this example, data repository 112may be configured to store demographic information for users of thesocial networking service. For example, the demographic information maybe based on profiles of the users of the social networking service.During an auction, data engine 111 accesses the demographic informationto determine users that are associated with demographic informationcorresponding to targeting conditions 132 a-132 c. As described infurther detail below, user 123 may opt-in or may opt-out of havingdemographic information of user 123 used in an auction.

Targeting conditions 132 a-132 c may also include information targetingcontent items 122 a-122 c to users associated with particular types ofbrowsing history. In still another example, targeting conditions 132a-132 c specify that content items 122 a-122 c are targeted to usersassociated with a particular type of viewing history. In the example,targeting conditions 132 a-132 c may specify that content items 122a-122 c are targeted to users watching a particular type of mediaprogram, e.g., a baseball game.

In another example, targeting conditions 132 a-132 c may target contentitems 122 a-122 c based on attributes of groups that are participatingin content stream 116 groups with which user 123 has a socialconnection, and so forth. In this example, a group participates incontent stream 116 by posting content in content stream 116, by viewingcontent in content stream 116, and so forth. Attributes of a group mayinclude interests of the group, demographic information of the group,browsing history of the group, and so forth.

In still another, targeting conditions 132 a-132 c specify that contentitems 122 a-122 c are targeted for display in content stream 116, e.g.,based on a type of content that is shown in media program 121. Inanother example, targeting conditions 132 a-132 c may includeinformation targeting display of content items 122 a-122 c in contentstream 116, e.g., when a particular type of content is displayed incontent stream 116.

Numerous other types of targeting conditions 132 a-132 c also exist,including, e.g., display of one or more of content items 122 a-122 c asa one-two punch content item. In an example, targeting conditions 132 a,132 b specify that content items 122 a, 122 b are displayed as one-twopunch content items. In this example, content item 122 a is selected fordisplay on client device 103, when content item 122 b is displayed onmedia program device 104. In another example, one-two punch contentitems include a content item that is displayed on media program device104 and a meta content item that is displayed in content stream 116.

For example, media program device 104 displays content item 130 duringmedia program 121. In this example, content item 130 includes a contentitem for a product. In this example, content item 122 a is displayed incontent stream 116 and includes a meta content item for content item130. Content item 122 a includes a link through which user 123 maypurchase the product that is advertised in content item 130. Contentitem 122 a is displayed in content stream 116 at a substantially sametime as content item 130 is displayed in media program device 104.

In still another example, targeting condition 132 a specifies thatcontent item 122 a is displayed as a one-two punch content item, e.g.,by being displayed in content stream 116 after a pre-defined period oftime has elapsed from when content item 122 a is displayed during mediaprogram 121. In this example, display of content item 122 a as a one-twopunch content item promotes user attention to content item 122 a, e.g.,by displaying content item 122 a during media program 121 and thenrepeating display of content item 122 a in content stream 116.

In another example, a content provider may want to display content item122 a in content stream 116 and during media program 121 at asubstantially same time. In this example, targeting condition 132 aspecifies that content item 122 a may be displayed as a one-two punchcontent item, e.g., by being displayed at a substantially same time incontent stream 116 and during media program 121.

Another type of targeting condition 132 a includes display of contentitem 122 a as a counter punch content item. In an example, targetingcondition 132 a includes information specifying that content item 122 amay be displayed as a counter punch content item to content item 130.

In an example, content item 130 is shown during media program 121 andincludes a content item for a baseball team. Content item 122 a includesa content item for another baseball team that is a competitor of thebaseball team featured in content item 130. In this example, a contentprovider may counteract the effect of content item 130, e.g., bydisplaying content item 122 a in content stream 116.

As shown in the below Table 1, a content provider may specify anadjustment to a bid price for display of content item 122 a in contentstream 116 when targeting condition 132 a is satisfied, e.g., relativeto a bid price for display of content item 122 a in content stream 116in independent of satisfaction of targeting condition 132 a (e.g., in anabsence of targeting condition 132 a). In the below Table 1, theadjustment to the bid price includes an increase in the bid price. Inother examples, the bid price is adjusted by other types of adjustments,including, e.g., a decrease in the bid price.

TABLE 1 Targeting Condition 132a % increase in bid price Attributes ofUser 10% increase in bid price Attributes of Group 10% increase in bidprice One-two punch content item 20% increase in bid price Counter punchcontent item 25% increase in bid price

The above Table 1 includes amounts by which the bid price for display ofcontent item 122 a in content stream 116 is increased when targetingcondition 132 a is satisfied, e.g., relative to the bid price fordisplay of content item 122 a independent of satisfaction of targetingcondition 132 a. For example, targeting condition 132 a may specifyattributes of users that the content provider wants to target withcontent item 122 a. As shown in the above Table 1, when user 123possesses the content provider specified attributes, the bid price fordisplay of content item 122 a in content stream 116 is increased by 10%,e.g., relative to the bid price for display of content item 122 a incontent stream 116 when user 123 possesses attributes other than thosespecified in targeting condition 132 a.

In another example, targeting condition 132 a may specify attributes ofgroups that the content provider wants to target with content item 122a. As shown in the above Table 1, when a group that is posting contentto content stream 116 possesses the content provider specifiedattributes, the bid price for display of content item 122 a is increasedby 10%, e.g., relative to the bid price for display of content item 122a in content stream 116 when the group possesses attributes other thanthose specified in targeting condition 132 a.

In another example, targeting condition 132 a includes content item 122a being displayed as a one-two punch content item. To promote display ofadvertisement 122 a as a one-two punch content item, the contentprovider increases the bid price by 20% for display of content item 122a as a one-two punch content item, e.g., relative to the bid priceindependent of content item 122 a being displayed as a one-two punchcontent item.

In another example, targeting condition 132 a includes content item 122a being displayed as a counter punch content item, e.g., a counter punchcontent item to content item 130. As shown in the above Table 1, thecontent provider increases the bid price by 25% for display of contentitem 122 a as a counter punch content item, e.g. relative to the bidprice independent of content item 122 a being displayed as a counterpunch content item.

In an example, targeting condition 132 a may include a collection ofindividual targeting conditions, which are collectively referred toherein as targeting condition 132 a, for purposes of convenience. Inthis example, targeting condition 132 a includes (i) informationspecifying that content item 122 a is displayed as a counter punchcontent item, and (ii) information specifying that content item 122 a isdisplayed to users associated with particular attributes defined by acontent provider.

In this example, data engine 111 detects satisfaction of each of theindividual targeting conditions within targeting condition 132 a forcontent item 122 a. In this example, the bid price of content item 122is cumulatively increased based on satisfaction of the individualtargeting conditions within targeting condition 132 a, e.g., relative tothe bid price independent of satisfaction of the individual targetingconditions.

For example, data engine 111 detects satisfaction of an individualtargeting condition within targeting condition 132 a, in which contentitem 122 a is displayed as a counter punch content item. As shown in theabove Table 1, data engine 111 increases the bid price by 25% fordisplay of content item 122 a as a counter punch content item, e.g.relative to the bid price independent of content item 122 a beingdisplayed as a counter punch content item.

Data engine 111 also detects that user 123 is associated with attributesthat are specified by the other individual targeting condition withintargeting condition 132 a. In accordance with increases in bid pricesbased on detection of attributes of users, as specified by Table 1, dataengine 111 increases by an additional 10% the bid price that has alreadybeen increased by 25%.

As previously described, data engine 111 generates selection scoresbased on bid prices and measures of relevance. In an example, a measureof relevance of content item 122 a to contents of content stream 116 isbased on numerous factors, including, e.g., a correspondence amongtargeting condition 132 a and contents of content stream 116.

As previously described, targeting condition 132 a may include targetingkeywords, attributes of viewers (e.g., user 123) of content stream 116,attributes of groups that post information in content stream 116, andinformation targeting users associated with particular demographicinformation.

Targeting condition 132 a may also include information targeting acontent item to users associated with particular types of browsinghistory. In still another example, targeting condition 132 a specifiesthat content item 122 a is targeted to users associated with aparticular type of viewing history.

In an example, the browsing history of user 123 is used in generatingthe measure of relevance for content item 122 a. In this example,targeting condition 132 a specifies that content item 122 a is targetedto users with a browsing history of viewing sports related content. Inthis example, content item 122 a is a content item related to sportsprograms. As indicated by the browsing history, user 123 has a historyof viewing sports related web sites. Based on the browsing history ofuser 123, data engine 111 generates an increased measure of relevancefor content item 122 a for display in content stream 116, e.g., relativeto other measures of relevance for other content items to be displayedin content stream 116.

Using the measure of relevance of content item 122 a to the contents ofcontent stream 116, data engine 111 generates a value indicative of eCTLfor content item 122 a. For example, an eCTL of 0.30 for content item122 a can specify that there is a 30% likelihood that content item 122 awill be selected by user 123 if presented in content stream 116.

Based on the measures of relevance and the bid prices, data engine 111executes an auction by generating selection scores for content items 122a-122 c. For example, a selection score for content item 122 a includesa product of a bid price for content item 122 a and the eCTL foradvertisement 122 a. As described above, the bid price for content item122 a may vary, based on detection of targeting condition 132 a,including, e.g., user interests and/or demographics, group interests andor demographics, conditions in which content item 122 a may be displayedas a counter punch content item, conditions in which content item 122 amay be displayed as a one-two punch content item, as so forth.

Once the auctioning is complete, data engine 111 identifies contentitems 122 a-122 c with increased selection scores, e.g., relative toselection scores of other content items (not shown) participating in theauction. Server 110 provides content items 122 a-122 c to client device103 for display in slots 124 a-124 c of content stream 116.

In an example, server 110 executes auctions in real-time, e.g., as thecontents of content stream 116 change, as the groups that are postingcontent in content stream 116 changes, as the content of media program121 changes, as the content items displayed during media program 121changes, and so forth.

In another example, data engine 111 uses contents of posts 106-108 inselecting one or more of content items 122 a-122 c for display in slots124 a-124 c. In this example, the content items selected for display inslots 124 a-124 c may change, e.g., as content stream 116 is updatedwith additional content that differs from posts 106-108.

In a variation of FIG. 1, network environment 100 includes a contentitem management system (not shown) for selecting content items 122 a-122c for display in slots 124 a-124 c. In this example, the content itemmanagement system may be external to network environment 100 or may beinternal to network environment 100 (and/or may be integrated withserver 110). In an example, the content item management system selectscontent items 122 a-122 c in response to a request for content items,e.g., that is sent from client device 103. When client device 103accesses from server 110 information for display of content stream 116,client device 103 sends to the content item management system therequest for content items 122 a-122 c.

The request for content items can include characteristics of slots 124a-124 c. The characteristics may include sizes of slots 124 a-124 c,and/or media types that are eligible for presentation in slots 124 a-124c. The request for the content items can also include contents ofcontent stream 116, e.g., to promote selection of content items that arerelevant to content stream 116.

Example System Implementations

FIG. 2 is a block diagram showing examples of components of networkenvironment 100 for populating content stream 116. In the example ofFIG. 2, graphical user interface 109, contents of graphical userinterface 109, user 123, and contents of data repository 112 are notshown.

Client device 103 can be a computing device capable of taking input fromuser 123 (FIG. 1) and communicating over network 102 with server 110and/or with other computing devices. For example, client device 103 canbe a mobile device, a desktop computer, a laptop, a cell phone, apersonal digital assistant (PDA), a server, a television with one ormore processors embedded therein and/or coupled thereto, an embeddedcomputing system, a mobile device, and the like. Network environment 100can include a plurality of computing devices, which can begeographically dispersed.

Network 102 can include a large computer network, including, e.g., alocal area network (LAN), wide area network (WAN), the Internet, acellular network, or a combination thereof connecting a number of mobilecomputing devices, fixed computing devices, and server systems. Thenetwork(s) may provide for communications under various modes orprotocols, including, e.g., Transmission Control Protocol/InternetProtocol (TCP/IP), Global System for Mobile communication (GSM) voicecalls, Short Message Service (SMS), Enhanced Messaging Service (EMS), orMultimedia Messaging Service (MMS) messaging, Code Division MultipleAccess (CDMA), Time Division Multiple Access (TDMA), Personal DigitalCellular (PDC), Wideband Code Division Multiple Access (WCDMA),CDMA2000, or General Packet Radio System (GPRS), among others.Communication may occur through a radio-frequency transceiver. Inaddition, short-range communication may occur, including, e.g., using aBluetooth, WiFi, or other such transceiver.

Server 110 can be a variety of computing devices capable of receivingdata and running one or more services, which can be accessed by clientdevice 103 and/or by content provider device 105. In an example, server110 can include a server, a distributed computing system, a desktopcomputer, a laptop, a cell phone, a rack-mounted server, and the like.Server 110 can be a single server or a group of servers that are at asame location or at different locations. Client device 103 and server110 can run programs having a client-server relationship to each other.Although distinct modules are shown in the figures, in some examples,client and server programs can run on the same device.

Content provider device 105 can include a server, a distributedcomputing system, a desktop computer, a laptop, a cell phone, arack-mounted server, and the like. Content provider device 105 can be asingle server or a group of servers that are at a same location or atdifferent locations.

Server 110 can receive data from client device 103 and content providerdevice 105 (and/or from data repository 112) through input/output (I/O)interface 200. I/O interface 200 can be a type of interface capable ofreceiving data over a network, including, e.g., an Ethernet interface, awireless networking interface, a fiber-optic networking interface, amodem, and the like. Server 110 also includes a processing device 202and memory 204. A bus system 206, including, for example, a data bus anda motherboard, can be used to establish and to control datacommunication between the components of server 110.

Processing device 202 can include one or more microprocessors. Memory204 can include a hard drive and a random access memory storage device,including, e.g., a dynamic random access memory, or other types ofnon-transitory machine-readable storage devices. As shown in FIG. 2,memory 204 stores computer programs that are executable by processingdevice 202. These computer programs include data engine 111. Data engine111 can be implemented in software running on a computer device (e.g.,server 110), hardware or a combination of software and hardware.

Example Processes

FIG. 3 is a flowchart showing an example process 300 for selectingcontent items 122 a-122 c for content stream 116. In FIG. 3, process 300is split into a left part 302, which is performed on client device 103(and/or by application 134 on client device 103), a center part 304,which is performed on media program device 104, and a right part 306,which is performed on server 110 (and/or by data engine 111 on server110).

In operation, a request (not shown) for content items 122 a-122 c fordisplay in slots 124 a-124 c of content stream 116 is transmitted (308).For example, application 134 may transmit (308) to server 110 therequest for content items 122 a-122 c for display in slots 124 a-124 cof content stream 116. The request may include information identifyinguser 123 (e.g., a user identifier for user 123 in the social networkingservice), information indicative of contents of content stream 116,including, e.g., contents of posts 106, 107, 106, groups that areposting in content stream 116, and so forth.

The request is received (310). For example, server 110 receives (310)the request. In response to the request, data engine 111 accesses (312)content items 122 a-122 c, targeting conditions 132 a-132 c, and bidprices for content items 122 a-122 c.

In the example of FIG. 3, measures of relevance for content items 122a-122 c are identified (314). For example, using the above describedtechniques, data engine 111 identifies (314) measures of relevance forcontent items 122 a-122 c. The measures of relevance are compared to athreshold value (not shown). For example, data engine 111 compares (notshown) the measures of relevance to a threshold value. In an example,content items with measures above relevance above the threshold valueare included in an auction. In this example, data engine 111 determinesthat measures of relevance for content items 122 a-122 c are above thethreshold value.

In an example, targeting conditions 132 a-132 c are determined to besatisfied (316). For example, data engine 111 determines (316) thattargeting conditions 132 a-132 c are satisfied. In this example, dataengine 111 is configured to generate a determination regardingsatisfaction of targeting conditions for content items 122 a-122 c withmeasures of relevance above the threshold value.

In an example, data engine 111 determines that targeting conditions 132a-132 c are satisfied by determining a correspondence among conditionsof network environment 100 and targeting conditions 132 a-132 c.Conditions of network environment 100 may include attributes of user123, contents of content stream 116, contents of media program 121, adisplay of one or more of content items 122 a-122 c as a one-two punchcontent item and/or as a counter punch content item, and so forth.

In determining whether conditions of network environment 100 satisfytargeting conditions 132 a-132 c, data engine 111 may identifyattributes of user 123. In this example, the above-described request forcontent items includes information identifying user 123, including,e.g., a user identifier for user 123 in the social networking service.Using the information identifying user 123, data engine 111 accesses, indata repository 112, information specifying attributes of user 123,including, e.g., a profile of user 123 in the social networking service.In an example, user 123 may opt-in or may opt-out of having profileinformation accessed and used in selection of content items 122 a-122 cfor display in content stream 116.

In another example, the request for content items includes informationidentifying content stream 116, e.g., an identifier of content stream116. Using the information identifying content stream 116, data engine111 accesses, in data repository 112, information associated withcontent stream 116, including, e.g., attributes of groups posting incontent stream 116, contents of posts in content stream 116, and soforth.

In another example, data engine 111 determines that conditions ofnetwork environment 100 satisfy targeting condition 132 a when contentitem 122 a is displayed as a counter punch content item to content item130. In this example, display of content item 130 during media program121 is a pre-condition for display of content item 122 a as a counterpunch content item. In this example, when a content provider uploadscontent item 122 a to server 110, the content provider specifies thatcontent item 122 a is a counter punch content item to content items of acompetitor, including, e.g., content item 130.

In this example, data engine 111 selects content item 130 for displayduring media program 121. Upon selection of content item 130, dataengine 111 determines that targeting condition 132 a for display ofcontent item 122 a as a counter punch content item is satisfied.

In another example, data engine 111 determines that conditions ofnetwork environment 100 satisfy targeting condition 132 a when contentsof media program 121 correspond to a type of content specified intargeting condition 132 a. Data engine 111 uses information receivedfrom media program device 104 in determining contents of media program121.

In this example, a message (not shown) is transmitted (318). Forexample, media program device 104 transmits (318) to server 110 amessage. The message includes information specifying a station throughwhich media program 121 is accessed by media program device 104. In thisexample, data engine 111 accesses a data repository (e.g., datarepository 112 or another, external data repository) specifyingassociations among stations and media programs. From a query of the datarepository, data engine 111 identifies that media program 121 isassociated with the station being accessed by media program device 104.Following identification of media program 121, data engine 111 maydetermine whether media program 121 includes a type of contentcorresponding to the type of content specified in targeting condition132 a.

Bid prices of content items 122 a-122 c are adjusted (319). For example,when conditions in network environment 100 satisfy targeting conditions132 a-132 c, data engine 111 adjusts (319) bid prices of content items122 a-122 c. In this example, data engine 111 increases the bid pricefor content item 122 a in accordance with information associated withtargeting condition 132 a, e.g., as indicated in the above Table 1.

An auction including content items 122 a-122 c is executed (320). Forexample, using the bid prices for content items 122 a-122 c and themeasures of relevance for content items 122 a-122 c, data engine 111executes (320) an auction for content items 122 a-122 c. In an example,data engine 111 executes the auction by generating selection scores forcontent items 122 a-122 c, as previously described.

Content items 122 a-122 c are selected for display in slots 124 a-124 c(322). For example, based on results of the auction, data engine 111selects (322) content items 122 a-122 c for display in slots 124 a-124c. In an example, data engine 111 selects a pre-defined number ofcontent items with selections scores that are higher than the selectionscores of other content items participating in the auction. Thepre-defined number of content items is based on a number of slots 124a-124 c.

Content items 122 a-122 c are sent for display in slots 124 a-124 c ofcontent stream 116 (not shown). For example, server 110 sends (notshown) content items 122 a-122 c to client device 103 for display inslots 124 a-124 c of content stream 116. Content items 122 a-122 c aredisplayed in slots 124 a-124 c of content stream 116 (324). For example,client device 103 displays (324) content items 122 a-122 c in slots 124a-124 c of content stream 116.

In an example, data engine 111 repeats actions 314, 316, 319, 320, 322,e.g., during a time in which contents of content stream 116 are updated.Data engine 111 updates in real-time the content items for display incontent stream 116, e.g., based on real-time changes in the content ofcontent stream 116, based on real-time changes in users posting tocontent stream, based on real-time changes in groups posting to contentstream, based on real-time changes in content of media program 121,based on real-time changes in content of content item 130 beingdisplayed during media program 121, and so forth.

In a variation of FIG. 3, data engine 111 determines that the conditionsof network environment 100 satisfy targeting conditions 132 a-132 c ofcontent items 122 a-122 c. Following this determination, data engine 111generates measures of relevance for content items 122 a-122 c, e.g., foruse in an auction.

Example Alternative System Implementations

FIG. 4 shows an example of computer device 400 and mobile computerdevice 450, which can be used with the techniques described here.Computing device 400 is intended to represent various forms of digitalcomputers, such as laptops, desktops, workstations, personal digitalassistants, servers, blade servers, mainframes, and other appropriatecomputers. Computing device 450 is intended to represent various formsof mobile devices, such as personal digital assistants, cellulartelephones, smartphones, and other similar computing devices. Thecomponents shown here, their connections and relationships, and theirfunctions, are meant to be examples only, and are not meant to limitimplementations of the techniques described and/or claimed in thisdocument.

Computing device 400 includes processor 402, memory 404, storage device406, high-speed interface 408 connecting to memory 404 and high-speedexpansion ports 410, and low speed interface 412 connecting to low speedbus 414 and storage device 406. Each of components 402, 404, 406, 408,410, and 412, are interconnected using various busses, and can bemounted on a common motherboard or in other manners as appropriate.Processor 402 can process instructions for execution within computingdevice 400, including instructions stored in memory 404 or on storagedevice 406 to display graphical data for a GUI on an externalinput/output device, such as display 416 coupled to high speed interface408. In other implementations, multiple processors and/or multiple busescan be used, as appropriate, along with multiple memories and types ofmemory. Also, multiple computing devices 400 can be connected, with eachdevice providing portions of the necessary operations (e.g., as a serverbank, a group of blade servers, or a multi-processor system).

Memory 404 stores data within computing device 400. In oneimplementation, memory 404 is a volatile memory unit or units. Inanother implementation, memory 404 is a non-volatile memory unit orunits. Memory 404 also can be another form of computer-readable medium,such as a magnetic or optical disk.

Storage device 406 is capable of providing mass storage for computingdevice 400. In one implementation, storage device 406 can be or containa computer-readable medium, such as a floppy disk device, a hard diskdevice, an optical disk device, or a tape device, a flash memory orother similar solid state memory device, or an array of devices,including devices in a storage area network or other configurations. Acomputer program product can be tangibly embodied in a data carrier. Thecomputer program product also can contain instructions that, whenexecuted, perform one or more methods, such as those described above.The data carrier is a computer- or machine-readable medium, such asmemory 404, storage device 406, memory on processor 402, and the like.

High-speed controller 408 manages bandwidth-intensive operations forcomputing device 400, while low speed controller 412 manages lowerbandwidth-intensive operations. Such allocation of functions is anexample only. In one implementation, high-speed controller 408 iscoupled to memory 404, display 416 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 410, which can acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 412 is coupled to storage device 406 and low-speed expansionport 414. The low-speed expansion port, which can include variouscommunication ports (e.g., USB, Bluetooth®, Ethernet, wirelessEthernet), can be coupled to one or more input/output devices, such as akeyboard, a pointing device, a scanner, or a networking device such as aswitch or router, e.g., through a network adapter.

Computing device 400 can be implemented in a number of different forms,as shown in the figure. For example, it can be implemented as standardserver 420, or multiple times in a group of such servers. It also can beimplemented as part of rack server system 424. In addition or as analternative, it can be implemented in a personal computer such as laptopcomputer 422. In some examples, components from computing device 400 canbe combined with other components in a mobile device (not shown), suchas device 450. Each of such devices can contain one or more of computingdevice 400, 450, and an entire system can be made up of multiplecomputing devices 400, 450 communicating with each other.

Computing device 450 includes processor 452, memory 464, an input/outputdevice such as display 454, communication interface 466, and transceiver468, among other components. Device 450 also can be provided with astorage device, such as a microdrive or other device, to provideadditional storage. Each of components 450, 452, 464, 454, 466, and 468,are interconnected using various buses, and several of the componentscan be mounted on a common motherboard or in other manners asappropriate.

Processor 452 can execute instructions within computing device 450,including instructions stored in memory 464. The processor can beimplemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor can provide, for example,for coordination of the other components of device 450, such as controlof user interfaces, applications run by device 450, and wirelesscommunication by device 450.

Processor 452 can communicate with a user through control interface 458and display interface 456 coupled to display 454. Display 454 can be,for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) oran OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. Display interface 456 can comprise appropriatecircuitry for driving display 454 to present graphical and other data toa user. Control interface 458 can receive commands from a user andconvert them for submission to processor 452. In addition, externalinterface 462 can communicate with processor 442, so as to enable neararea communication of device 450 with other devices. External interface462 can provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces also can be used.

Memory 464 stores data within computing device 450. Memory 464 can beimplemented as one or more of a computer-readable medium or media, avolatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 474 also can be provided and connected to device 450through expansion interface 472, which can include, for example, a SIMM(Single In Line Memory Module) card interface. Such expansion memory 474can provide extra storage space for device 450, or also can storeapplications or other data for device 450. Specifically, expansionmemory 474 can include instructions to carry out or supplement theprocesses described above, and can include secure data also. Thus, forexample, expansion memory 474 can be provide as a security module fordevice 450, and can be programmed with instructions that permit secureuse of device 450. In addition, secure applications can be provided viathe SIMM cards, along with additional data, such as placing identifyingdata on the SIMM card in a non-hackable manner.

The memory can include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in a data carrier. The computer program productcontains instructions that, when executed, perform one or more methods,such as those described above. The data carrier is a computer- ormachine-readable medium, such as memory 464, expansion memory 474,and/or memory on processor 452, that can be received, for example, overtransceiver 468 or external interface 462.

Device 450 can communicate wirelessly through communication interface466, which can include digital signal processing circuitry wherenecessary. Communication interface 466 can provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication can occur, for example, through radio-frequencytransceiver 468. In addition, short-range communication can occur, suchas using a Bluetooth®, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 470 canprovide additional navigation- and location-related wireless data todevice 450, which can be used as appropriate by applications running ondevice 450.

Device 450 also can communicate audibly using audio codec 460, which canreceive spoken data from a user and convert it to usable digital data.Audio codec 460 can likewise generate audible sound for a user, such asthrough a speaker, e.g., in a handset of device 450. Such sound caninclude sound from voice telephone calls, can include recorded sound(e.g., voice messages, music files, and the like) and also can includesound generated by applications operating on device 450.

Computing device 450 can be implemented in a number of different forms,as shown in the figure. For example, it can be implemented as cellulartelephone 480. It also can be implemented as part of smartphone 482,personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichcan be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms machine-readable medium andcomputer-readable medium refer to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying data to the user and a keyboard and a pointing device(e.g., a mouse or a trackball) by which the user can provide input tothe computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a user interface or a Web browser through which a user caninteract with an implementation of the systems and techniques describedhere), or any combination of such back end, middleware, or front endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication (e.g., a communicationnetwork). Examples of communication networks include a local areanetwork (LAN), a wide area network (WAN), and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

In some implementations, the engines described herein can be separated,combined or incorporated into a single or combined engine. The enginesdepicted in the figures are not intended to limit the systems describedhere to the software architectures shown in the figures.

For situations in which the systems and techniques discussed hereincollect personal information about users, the users may be provided withan opportunity to opt in/out of programs or features that may collectpersonal information (e.g., information about a user's preferences or auser's current location). In addition, particular data may be anonymizedin one or more ways before it is stored or used, so that personallyidentifiable information is removed. For example, a user's identity maybe anonymized so that no personally identifiable information can bedetermined for the user, or a user's geographic location may begeneralized where location information is obtained (e.g., to a city, zipcode, or state level), so that a particular location of the user cannotbe determined.

All processes described herein and variations thereof (referred to as“the processes”) contain functionality to ensure that party privacy isprotected. To this end, the processes may be programmed to confirm thata user's membership in a social networking account is publicly knownbefore divulging, to another party, that the user is a member. Likewise,the processes may be programmed to confirm that information about aparty is publicly known before divulging that information to anotherparty, or even before incorporating that information into a socialgraph.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications can be made without departing fromthe spirit and scope of the processes and techniques described herein.In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps can be provided, or steps can beeliminated, from the described flows, and other components can be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

What is claimed is:
 1. A method for selecting content items, the methodcomprising: receiving, using one or more processing devices, a requestfor content items for display in a content stream; retrieving, using theone or more processing devices, in response to the request, conditionsfor targeting content items for display in the content stream, with eachof the content items being associated with one or more of theconditions, and with each of the conditions specifying that one or morepredefined events occur before display of an associated content item istargeted; wherein each of the conditions is associated with informationspecifying an adjustment to a bid price for display of an associatedcontent item upon satisfaction of the condition, relative to the bidprice for display of the associated content item in an absence of thecondition; determining, using the one or more processing devices,measures of relevance for the content items, with a measure of relevancespecifying a relevance of a content item to contents of the contentstream; from among the content items, identifying a content item with ameasure of relevance exceeding a threshold value; for the content itemidentified, determining, using the one or more processing devices,whether there is an occurrence of one or more predefined events thatsatisfies a condition for targeting the content item identified;adjusting, using the one or more processing devices, the bid price forthe content item identified, when there is the occurrence of the one ormore predefined events that satisfies the condition for the content itemidentified; executing, using the one or more processing devices, anauction, based on the bid price adjusted for the content item identifiedand further based on other bid prices for other content items in theauction; selecting, using the one or more processing devices, based onthe auction, the content items for display in the content stream; andoutputting, using the one or more processing devices, the content itemsselected to a display device.
 2. The method of claim 1, wherein ameasure of relevance for the content item identified is based on asatisfaction of the condition by one or more of attributes of a userviewing the content stream and attributes of the content stream.
 3. Themethod of claim 1, wherein the content stream is designated for displayof content related to a media program that is accessed by a viewer ofthe content stream.
 4. The method of claim 3, wherein the condition forthe content item identified comprises the content item identified beingdisplayed in the content stream to counteract an effect of another,different content item displayed during the media program.
 5. The methodof claim 3, wherein the content item identified comprises a firstcontent item, and wherein the condition for the content item identifiedcomprises: the first content item being displayed in the content streamas a second content item is displayed during the media program.
 6. Themethod of claim 3, wherein the condition for the content item identifiedcomprises information indicative of a type of content to be targeted,and wherein the method further comprises: receiving, from a device fordisplay of the media program, information indicative of a station onwhich the media program is accessed; identifying, based on the station,an identity of the media program accessed by the viewer; anddetermining, based on the identity of the media program, acorrespondence between the type of content to be targeted and a type ofcontent associated with the media program accessed by the viewer.
 7. Themethod of claim 1, wherein the condition for the content item identifiedcomprises one or more of: one or more attributes of a viewer of thecontent stream; one or more attributes of a group that is generatingcontent for the content stream; content that is posted in the contentstream; and content of a media program that is accessed by the viewer ofthe content stream.
 8. The method of claim 1, wherein at least one ofthe content items selected comprises a content item for which arespective condition is satisfied.
 9. One or more non-transitorymachine-readable hardware storage devices storing instructions that areexecutable by one or more processing devices to perform operationscomprising: receiving a request for content items for display in acontent stream; retrieving in response to the request, conditions fortargeting content items for display in the content stream, with each ofthe content items being associated with one or more of the conditions,and with each of the conditions specifying that one or more predefinedevents occur before display of an associated content item is targeted;wherein each of the conditions is associated with information specifyingan adjustment to a bid price for display of an associated content itemupon satisfaction of the condition, relative to the bid price fordisplay of the associated content item in an absence of the condition;determining measures of relevance for the content items, with a measureof relevance specifying a relevance of a content item to contents of thecontent stream; from among the content items, identifying a content itemwith a measure of relevance exceeding a threshold value; for the contentitem identified, determining whether there is an occurrence of one ormore predefined events that satisfies a condition for targeting thecontent item identified; adjusting the bid price for the content itemidentified, when there is the occurrence of the one or more predefinedevents that satisfies the condition for the content item identified;executing an auction, based on the bid price adjusted for the contentitem identified and further based on other bid prices for other contentitems in the auction; selecting, based on the auction, the content itemsfor display in the content stream; and outputting the content itemsselected to a display device.
 10. The one or more non-transitorymachine-readable hardware storage devices of claim 9, wherein a measureof relevance for the content item identified is based on a satisfactionof the condition by one or more of attributes of a user viewing thecontent stream and attributes of the content stream.
 11. The one or morenon-transitory machine-readable hardware storage devices of claim 9,wherein the content stream is designated for display of content relatedto a media program that is accessed by a viewer of the content stream.12. The one or more non-transitory machine-readable hardware storagedevices of claim 11, wherein the condition for the content itemidentified comprises the content item identified being displayed in thecontent stream to counteract an effect of another, different contentitem displayed during the media program.
 13. The one or morenon-transitory machine-readable hardware storage devices of claim 11,wherein the content item identified comprises a first content item, andwherein the condition for the content item identified comprises: thefirst content item being displayed in the content stream as a secondcontent item is displayed during the media program.
 14. The one or morenon-transitory machine-readable hardware storage devices of claim 11,wherein the condition for the content item identified comprisesinformation indicative of a type of content to be targeted, and whereinthe operations further comprise: receiving, from a device for display ofthe media program, information indicative of a station on which themedia program is accessed; identifying, based on the station, anidentity of the media program accessed by the viewer; and determining,based on the identity of the media program, a correspondence between thetype of content to be targeted and a type of content associated with themedia program accessed by the viewer.
 15. The one or more non-transitorymachine-readable hardware storage devices of claim 9, wherein thecondition for the content item identified comprises one or more of: oneor more attributes of a viewer of the content stream; one or moreattributes of a group that is generating content for the content stream;content that is posted in the content stream; and content of a mediaprogram that is accessed by the viewer of the content stream.
 16. Theone or more non-transitory machine-readable hardware storage devices ofclaim 9, wherein at least one of the content items selected comprises acontent item for which a respective condition is satisfied.
 17. Anelectronic system comprising: one or more processing devices; and one ormore non-transitory machine-readable hardware storage devices storinginstructions that are executable by the one or more processing devicesto perform operations comprising: receiving a request for content itemsfor display in a content stream; retrieving in response to the request,conditions for targeting content items for display in the contentstream, with each of the content items being associated with one or moreof the conditions, and with each of the conditions specifying that oneor more predefined events occur before display of an associated contentitem is targeted; wherein each of the conditions is associated withinformation specifying an adjustment to a bid price for display of anassociated content item upon satisfaction of the condition, relative tothe bid price for display of the associated content item in an absenceof the condition; determining measures of relevance for the contentitems, with a measure of relevance specifying a relevance of a contentitem to contents of the content stream; from among the content items,identifying a content item with a measure of relevance exceeding athreshold value; for the content item identified, determining whetherthere is an occurrence of one or more predefined events that satisfies acondition for targeting the content item identified; adjusting the bidprice for the content item identified, when there is the occurrence ofthe one or more predefined events that satisfies the condition for thecontent item identified; executing an auction, based on the bid priceadjusted for the content item identified and further based on other bidprices for other content items in the auction; selecting, based on theauction, the content items for display in the content stream; andoutputting the content items selected to a display device.
 18. Theelectronic system of claim 17, wherein a measure of relevance for thecontent item identified is based on a satisfaction of the condition byone or more of attributes of a user viewing the content stream andattributes of the content stream.
 19. The electronic system of claim 17,wherein the content stream is designated for display of content relatedto a media program that is accessed by a viewer of the content stream.20. The electronic system of claim 19, wherein the condition for thecontent item identified comprises the content item identified beingdisplayed in the content stream to counteract an effect of another,different content item displayed during the media program.
 21. Theelectronic system of claim 19, wherein the content item identifiedcomprises a first content item, and wherein the condition for thecontent item identified comprises: the first content item beingdisplayed in the content stream as a second content item is displayedduring the media program.
 22. The electronic system of claim 19, whereinthe condition for the content item identified comprises informationindicative of a type of content to be targeted, and wherein theoperations further comprise: receiving, from a device for display of themedia program, information indicative of a station on which the mediaprogram is accessed; identifying, based on the station, an identity ofthe media program accessed by the viewer; and determining, based on theidentity of the media program, a correspondence between the type ofcontent to be targeted and a type of content associated with the mediaprogram accessed by the viewer.
 23. The electronic system of claim 17,wherein the condition for the content item identified comprises one ormore of: one or more attributes of a viewer of the content stream; oneor more attributes of a group that is generating content for the contentstream; content that is posted in the content stream; and content of amedia program that is accessed by the viewer of the content stream. 24.The electronic system of claim 17, wherein at least one of the contentitems selected comprises a content item for which a respective conditionis satisfied.